package com.expense.app.admin.services;

import com.expense.app.admin.model.dto.adminUser.AdminUserDetailDTO;
import com.expense.app.admin.model.dto.adminUser.AdminUserGeneratePasswordDTO;
import com.expense.app.admin.model.dto.adminUser.AdminUserListDTO;
import com.expense.app.admin.model.params.adminUser.AdminUserDetailSaveParam;
import com.expense.app.admin.model.params.adminUser.AdminUserListParam;
import com.expense.app.admin.model.params.adminUser.AdminUserModifyPasswordParam;
import com.expense.common.entity.params.CheckParam;
import com.expense.common.entity.params.DetailParam;
import com.expense.common.model.auth.AdminUser;

public interface AdminUserServ {

    /**
     * 查询所有员工(不包含管理员)
     * @return
     */
    AdminUserListDTO findAllEmployeeList();

    AdminUserListDTO findList(AdminUserListParam param);

    AdminUserDetailDTO findDetail(DetailParam param);

    AdminUser saveOne(AdminUserDetailSaveParam param);

    Boolean checkByUserName(CheckParam checkParam);

    AdminUser savePassword(AdminUserModifyPasswordParam param);

    AdminUserGeneratePasswordDTO generatePassword(DetailParam param);

    /**
     * 重置密码
     * @param id
     * @return
     */
    AdminUser resetPassword(Long id);

    Long deleteOne(DetailParam param);

    Long isEnableOne(DetailParam param);

    AdminUser getAdminUser(Long id);

}
